package com.efeichong.project.service;

import com.efeichong.common.PageData;
import com.efeichong.common.domain.ResponseData;
import com.efeichong.project.domain.vo.*;

import java.util.List;

/**
 * @author
 * @date 2020/11/25
 * @description 用户
 */
public interface SysUserService {
    /**
     * 通过id查询
     *
     * @param id
     * @return
     */
    UserInfoVo getInfo(Long id);

    /**
     * 分页查询
     *
     * @param userQueryVo
     * @return
     */
    PageData<UserListVo> selectByPage(UserQueryVo userQueryVo);

    /**
     * 新增
     *
     * @param userInfoVo
     * @return
     */
    void insertSysUser(UserInfoVo userInfoVo);

    /**
     * 修改
     *
     * @param userInfoVo
     * @return
     */
    void updateSysUser(UserInfoVo userInfoVo);

    /**
     * 批量删除
     *
     * @return
     * @paramids
     */
    void deleteByIds(List<Long> ids);

    /**
     * 通过id删除
     *
     * @param id 主键
     * @return
     */
    void deleteById(Long id);

    /**
     * 账号密码登陆接口
     *
     * @param loginVo
     * @return
     */
    ResponseData login(LoginVo loginVo);

    /**
     * 获取验证码
     *
     * @return
     */
    ResponseData getVerifyCode();

    ResponseData<List<SysMenuVo>> queryPerms();

    ResponseData updatePassword(String oldPassword, String newPassword);

    ResponseData resetPassword(Long id);
}
